                                   IBIZA 2

                              HOW IT ALL BEGAN

                      Ben "Bruce 'entheh' Perry" Davis
                       http://bdavis.strangesoft.net/

                               SpeedHack 2005
                    http://www.speedhack.allegro.cc/2005/

                                    ~ ~ ~

                                Introduction
                                ~~~~~~~~~~~~

It is Friday. The date is 5 August 2005. The SpeedHack starts today, but you
have not heard of SpeedHack because you have "got a life". BBC Radio 1's top
DJs are spending the weekend in Ibiza, and so are you. Excited, you arrive at
Heathrow Airport only to find that your flight, and many others, have been
cancelled at the last moment owing to a strike.

   http://news.bbc.co.uk/1/hi/england/london/4144386.stm

This prologue to the hugely successful title 'Ibiza Insurgency' charts your
adventures as you wait for your flight to be rescheduled. Do not worry, the
game concept works this time. Make sure your speakers are on.

Ibiza 2: How It All Began is my entry into SpeedHack 2005, a 72-hour game
programming competition. I thought High Glider would be my last SpeedHack
production (2004), given that I was due to start working in full-time game
development in August 2004. However, come SpeedHack, the inevitable thirst to
participate took hold. I have maintained semi-reasonable sleeping patterns
this time, so my entry is rather simpler than some of my previous entries.
On the other hand, I have concentrated less on special effects and more on
playability this time, so I am proud to say that Ibiza 2: How It All Began is
a complete game. I hope you enjoy it.

Ibiza 2: How It All Began is also my gift to everyone who missed a holiday in
Ibiza this year. My little morsel at the end is no substitute for the real
thing, but do try to reach it!

Apologies to Inphernic for not finding time to incorporate the fun little
samples he gave me.

                                    ~ ~ ~

                                Compiling it
                                ~~~~~~~~~~~~

If you do not have an executable and you know what 'compiling' is, read this
section.

You need Allegro 4.0.0 or greater and DUMB v0.9.3 or greater. The compilation
is straightforward: compile all the .cpp files as C++ code and link with
Allegro and DUMB. Note that DUMB contains two libraries. For GCC, the linking
flags would be "-laldmb -ldumb -lalleg" (Windows) or
"-laldmb -ldumb `allegro-config --libs`" (UNIX-like systems). There is a
Makefile that works on Linux; you may be able to shoehorn it to your needs.

   Allegro: http://alleg.sf.net/
   DUMB: http://dumb.sf.net/

                                    ~ ~ ~

                               SpeedHack Rules
                               ~~~~~~~~~~~~~~~

To deter people from starting early, the SpeedHack organiser releases a set
of rules at the start of the competition to which all entries must adhere.
Traditionally the rules have been chosen by Arron Shutt (we miss you,
b-a-a-a-a-a), but this year, Matthew Leverton built a system whereby the
participants, or anyone with a good idea, could propose their own rules and
rate all the others.

So how have I attempted to meet this year's requirements?

If you have not played the game yet, I suggest you do so before reading this
section. The explanations below contain spoilers.

Genre requirements: Survival

   "The objective of the game must be to stay alive. Ideally there will be
   difficult situations that must be overcome. The game could be unbeatable,
   only ending when the player dies, or it could have an achievable end - it
   doesn't really matter :). As long as staying alive is a priority..."

   As you play the game, it should become obvious how I have approached this
   one. There is an achievable end!

Technical requirements: Make it a Classic

   "You must implement at least one of the following:

   * Maximum of 320x200 game resolution and maximum of 16 simultaneous
     colors. For compatibility reasons, the screen resolution may be whatever
     you want to use. For instance, you could use a 160x120 internal
     resolution that is stretched to 640x480. If your graphics are scalable,
     it is fine to include higher native resolutions - but the default
     settings must be no higher than 320x200 and the game must be designed to
     play well at that resolution.

   * A palette of six "gray scale" colors. ...

   * Four button joystick with no mouse or keyboard support. The only way to
     control the game is via a NES style joystick: start, select, A, B. Only
     two of the buttons can be action / core game play buttons. You may (and
     should) emulate the joystick via the keyboard. The mapping is up to you,
     but the arrow keys could be used as the digital pad, CTRL and ALT for
     the fire buttons, and Tab and Enter for select and start. For example,
     if you have a high score list, the user must enter his name by selecting
     a letter via the cursor keys and then pressing a fire button to select
     it.

   Again, you only have to implement one of the above restrictions. If you
   want to be adventurous, try all three."

   With a resolution of 320x200 (scaled to 640x480) and the exact 16-colour
   palette from good old CGA and EGA, Ibiza 2: How It All Began complies
   beautifully with the first restriction. Controllable with the arrow keys,
   Enter and Space (identical) and Esc for the menu, it also falls short of
   the third criterion only by not actually detecting joysticks, but meeting
   this requirement was quite accidental; games become unmanageable if you
   have too many controls!

   I steered clear of the second restriction because I like colours.

Technical requirements: Randomness

   "Games that play exactly the same every time quickly get boring.
   Considering you only have 72 hours to complete your game, you won't have
   much time to design huge sets of levels.

   Some part of the game must be generated randomly and be different every
   time you play. It should noticeably affect the game (like a randomly
   generated landscape or maze), but it could be as simple as a random color
   scheme."

   I have randomly generated aeroplane timings and of course a random
   departure time. Feeling that was not enough, I went and made the world map
   random. Unfortunately, that does not affect the game play. It looks pretty
   though.

Artistic requirements: Dichotomy

   "Dichotomy is defined as 'division into two usually contradictory parts or
   opinions'. Incorporate opposites into the game."

   My opposites are the two airports. I am sure if you think hard enough you
   can think of some reasons why London and Tokyo are complete opposites.
   London is in a country within an island, while Tokyo is on an island
   within a country! There you go.

   Oh wait. That seems to vary from game to game.

Artistic requirements: World Map

   "Implement some type of world map, if applicable to your game. You may opt
   out of this rule if your game has no concept of location. However, if you
   think hard enough you should be able to come up with something.

   It could be in the street-fighter style where you are shown flying to the
   next country. You could also have a world map that allows the gamer to
   pick from a list of challenges. If the game has a linear path, you could
   show how far the gamer has progressed."

   Street Fighter does that? I suppose they had to find some way of
   compensating for the dull claustrophobic nothingness of fighting against a
   more or less static background all the time.

Bonus rules: Act of IP

   "You may opt out of one other rule if you choose to implement networking.
   ..."

   No networking here. Move along.

                                    ~ ~ ~

                                 Conclusion
                                 ~~~~~~~~~~

Thank you for devoting so much time to reading my "readme" when there are so
many other entries to try out!

Good luck to all the other participants. Good luck to me getting to work on
time tomorrow. Thanks to Matthew Leverton for a well run competition, and see
you all next year!

                                                                        ~ Ben
